#pragma once

#include "ScriptCompiler/ASTBuilder/ASTBuilder.h"
class CExpressionNode;

//will consume '(' and ')'
class CArgumentsBuilder : public IASTBuilder
{
public:
    CArgumentsBuilder(std::shared_ptr<CScriptFileContext> InContext);


    virtual bool ReadCurentToken() override;

    std::shared_ptr<CScriptToken> LeftBracket;
    TVector<std::shared_ptr<CExpressionNode>> Result;
    std::shared_ptr<CScriptToken> RightBracket;

    EScriptTokenType LeftBracketType = EScriptTokenType::LeftParentheses;
    EScriptTokenType RightBracketType = EScriptTokenType::RightParentheses;
protected:
    std::shared_ptr<CScriptFileContext> Context;

};